iT邦幫忙

2026 iThome 鐵人賽

DAY 11
0
Software Development

Web API:從零開始探索公開 API 與資料應用系列 第 24 篇

Day 24|分析天氣 API 回傳的 JSON 資料

  • 分享至 

  • xImage
  •  

一、前言

前幾天實際操作天氣 API 時,
已經可以透過不同的經緯度查詢不同地點的天氣,

昨天則進一步觀察了天氣 API 的 JSON 結構,
發現資料其實可以分成不同的區塊,
例如 current_units 和 current。

今天則要進一步分析這些資料到底代表什麼,
這次會使用前幾天實際查詢到的台中資料作為範例,
挑選幾個比較重要的欄位來觀察。

⸻
https://ithelp.ithome.com.tw/upload/images/20261009/20178901iNGAXgC5Ew.jpg

二、查詢位置的資訊

首先可以看到最前面的:
"latitude": 24.147627,
"longitude": 120.70138
這兩個欄位代表這次查詢的位置座標,
latitude 是緯度,longitude 是經度,
也就是說API 可以透過這兩個數值判斷我們要查詢哪個位置。

前面在 Day 21 實際操作時,
也是透過修改這兩個 Parameter 來查詢台北、台中和高雄,
這兩個欄位也可以和前面學到的 Parameter 連結起來。

⸻

三、timezone 和 elevation

接著可以看到:
"timezone": "GMT",
"timezone_abbreviation": "GMT",
"elevation": 94.0
timezone 和 timezone_abbreviation 是時區相關資訊,elevation 則是這個位置的海拔高度。

這些資料並不是我們這次最主要想比較的天氣數值,
但也可以讓我們看到 API 回傳的不只是溫度,
除了目前的天氣狀況之外,
也會提供和查詢位置相關的其他資訊。

⸻

四、current_units

昨天分析 JSON 結構時,可以看到:
"current_units": {
"time": "iso8601",
"interval": "seconds",
"temperature_2m": "°C",
"relative_humidity_2m": "%",
"wind_speed_10m": "km/h"
}
這一區主要是在告訴我們 current 裡面的資料使用什麼單位。

例如:
"temperature_2m": "°C"
代表溫度的單位是攝氏。

"relative_humidity_2m": "%"
代表相對濕度使用百分比。

"wind_speed_10m": "km/h"
代表風速使用公里/小時。

如果只看到 31.0 或 48 這種數字,
單看數字其實不知道它代表什麼,
搭配 current_units 後,
就可以知道這些數值的單位。

⸻

五、current和時間

接下來是這次天氣資料比較重要的部分:
"current": {
"time": "2026-09-20T05:30",
"interval": 900,
...
}
其中 time 是這筆目前天氣資料對應的時間。

這次查詢結果顯示:
2026-09-20T05:30
因此可以知道這筆資料不是一個固定不變的數值,
而是某個時間點取得的天氣資料。

另外還有:
"interval": 900
這裡的數值代表資料時間間隔,
單位可以從 current_units 中看到是秒。
900 秒換算後就是 15 分鐘。

⸻

六、temperature_2m、relative_humidity_2m 和 wind_speed_10m

接著來看這次最主要的三個天氣資料:
"temperature_2m": 33.5,
"relative_humidity_2m": 48,
"wind_speed_10m": 14.9
其中 temperature_2m 是溫度,
這次查詢到的結果是 33.5°C。

relative_humidity_2m 是相對濕度,這次是 48%。

而 wind_speed_10m 是風速,這次是 14.9 km/h。

可以看到API 回傳的 JSON 雖然有很多欄位,
但實際進行比較時可以只挑出自己需要的資料。

⸻

七、資料總結

將這次台中查詢結果中比較重要的欄位和意思整理起來
https://ithelp.ithome.com.tw/upload/images/20261009/201789015dq0ZfZGtT.jpg
這樣整理之後,
可以更清楚看到一份 API Response 中有哪些資料。
如果直接看完整 JSON,可能會覺得資料很多,
但實際上可以依照自己的需求,只挑選需要的欄位。

⸻

八、總結

今天使用實際查詢到的台中天氣資料,
進一步分析了天氣 API 回傳的 JSON。

從查詢位置的 latitude、longitude,
到 current_units 中的資料單位,
再到 current 裡面的時間、溫度、濕度和風速,
可以看到一份 API Response 其實包含了很多不同類型的資訊。

天氣API 的主要內容也差不多完成了,
下一篇會把這幾天從查詢、比較到 JSON 分析的內容整理起來,作為這一週天氣API的總結。


上一篇
Day 23|天氣 API 的 JSON 結構
下一篇
Day 25|天氣 API 總結
系列文
Web API:從零開始探索公開 API 與資料應用 共 29 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言